//
//  NSString+LZCategory.h
//  LZBaseFrame
//
//  Created by 位立志 on 2018/3/13.
//  Copyright © 2018年 Bwton. All rights reserved.
//

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

@interface NSString (SJZCategory)
/**
 ShA256 hash签名
 
 @return 完成签名的字符串
 */
- (NSString *)SHA256;
- (NSString *)hmac:(NSString *)plaintext withKey:(NSString *)key;

// md5
- (NSString *) md5String;
- (NSString *)base64Encoding;
/** 转拼音 */
- (NSString *)transformPinyin;

/** 去掉两边的空格 */
- (NSString *)validString;

/** 正则匹配手机号 */
- (BOOL)isMobileNumber;

/** 正则匹配电信手机号 */
- (BOOL)isCT_MobileNumber;

/** 正则匹配邮箱 */
- (BOOL)isValidEmail;

/** 正则匹配URL地址 */
- (BOOL)isValidUrl;

/** 判断字符串是否以某个字符串开头 */
- (BOOL)isBeginsWith:(NSString *)string;

/** 判断字符串是否以某个字符串结尾 */
- (BOOL)isEndssWith:(NSString *)string;

/** 判断字符串是否包含某个字符串 */
- (BOOL)containsString:(NSString *)subString;

/** 新字符串替换老字符串 */
- (NSString *)replaceCharcter:(NSString *)olderChar withCharcter:(NSString *)newerChar;

/** 截取字符串（字符串都是从第0个字符开始数的哦~） */
- (NSString*)getSubstringFrom:(NSInteger)begin to:(NSInteger)end;

/** 添加字符串 */
- (NSString *)addString:(NSString *)string;

/** 从主字符串中移除某个字符串 */
- (NSString *)removeSubString:(NSString *)subString;

/** 去掉字符串中的空格 */
- (NSString *)removeWhiteSpacesFromString;

/** 判断字符串是否只包含字母 */
- (BOOL)isLetter;

/** 判断字符串是否只包含数字 */
- (BOOL)isNumbers;

/** 判断字符串是否只包含数字和字母 */
- (BOOL)containsOnlyNumbersAndLetters;

/** 由字母或数字组成 6-18位密码字符串（正则） */
- (BOOL)isPassword;

/** 判断数组中是否包含某个字符串 */
- (BOOL)isInThisarray:(NSArray*)array;

/** 字符串转Data */
- (NSData *)convertToData;

/** Data转字符转 */
+ (NSString *)getStringFromData:(NSData *)data;

/** 获取系统版本号 */
+ (NSString *)getMyApplicationVersion;

/** 获取当前时间 */
+ (NSString*)getCurrentTimeString;

/** 通知字符串长度 （文字 2个字节 字母：1个字节） */
- (NSUInteger)unicodeLengthOfString;

/** 中文2个长度,英文1个长度,返回总长度 */
- (NSInteger)convertToInt;

/** 时间戳转时间 */
- (NSDate *)dateValueWithMillisecondsSince1970;

/**
 *  计算属性字符文本占用的宽高
 *  @param font    显示的字体
 *  @param maxSize 最大的显示范围
 *  @param lineSpacing 行间距
 *  @param firstLineHeadIndent 缩进
 *  @return 占用的宽高
 */
- (CGSize)attrStrSizeWithFont:(UIFont *)font
                   andmaxSize:(CGSize)maxSize
                  lineSpacing:(CGFloat)lineSpacing
          firstLineHeadIndent:(CGFloat) firstLineHeadIndent;


@end
